package com.ruoyi.mes.service.impl;

import java.util.List;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.mes.utils.CodeUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.mes.mapper.PlnMaterialPlanMapper;
import com.ruoyi.mes.domain.PlnMaterialPlan;
import com.ruoyi.mes.service.IPlnMaterialPlanService;

/**
 * 物料计划Service业务层处理
 * 
 * @author CFL
 * @date 2024-04-28
 */
@Service
public class PlnMaterialPlanServiceImpl implements IPlnMaterialPlanService 
{
    @Autowired
    private PlnMaterialPlanMapper plnMaterialPlanMapper;

    /**
     * 查询物料计划
     * 
     * @param id 物料计划主键
     * @return 物料计划
     */
    @Override
    public PlnMaterialPlan selectPlnMaterialPlanById(Long id)
    {
        return plnMaterialPlanMapper.selectPlnMaterialPlanById(id);
    }

    /**
     * 查询物料计划列表
     * 
     * @param plnMaterialPlan 物料计划
     * @return 物料计划
     */
    @Override
    public List<PlnMaterialPlan> selectPlnMaterialPlanList(PlnMaterialPlan plnMaterialPlan)
    {
        return plnMaterialPlanMapper.selectPlnMaterialPlanList(plnMaterialPlan);
    }

    /**
     * 修改-查询物料计划列表
     *
     * @param plnMaterialPlan 物料计划
     * @return 物料计划
     */
    @Override
    public List<PlnMaterialPlan> selectMaterialPlanList(PlnMaterialPlan plnMaterialPlan)
    {
        return plnMaterialPlanMapper.selectMaterialPlanList(plnMaterialPlan);
    }

    /**
     * 新增物料计划
     * 
     * @param plnMaterialPlan 物料计划
     * @return 结果
     */
    @Override
    public int insertPlnMaterialPlan(PlnMaterialPlan plnMaterialPlan)
    {
        return plnMaterialPlanMapper.insertPlnMaterialPlan(plnMaterialPlan);
    }

    /**
     * 生产计划-新增物料计划
     *
     * @param plnMaterialPlan 物料计划
     * @return 结果
     */
    @Override
    public int insertMaterialPlan(PlnMaterialPlan plnMaterialPlan)
    {
        BaseController baseController = new BaseController();
        String username = baseController.getUsername();
        String materialPlanSn = CodeUtils.materialCodeCreat();
        plnMaterialPlan.setCreatedBy(username);
        plnMaterialPlan.setCreatedTime(DateUtils.getNowDate());
        plnMaterialPlan.setSn(materialPlanSn);
        return plnMaterialPlanMapper.insertMaterialPlan(plnMaterialPlan);
    }

    /**
     * 修改物料计划
     * 
     * @param plnMaterialPlan 物料计划
     * @return 结果
     */
    @Override
    public int updatePlnMaterialPlan(PlnMaterialPlan plnMaterialPlan)
    {
        return plnMaterialPlanMapper.updatePlnMaterialPlan(plnMaterialPlan);
    }

    /**
     * 批量删除物料计划
     * 
     * @param ids 需要删除的物料计划主键
     * @return 结果
     */
    @Override
    public int deletePlnMaterialPlanByIds(Long[] ids)
    {
        return plnMaterialPlanMapper.deletePlnMaterialPlanByIds(ids);
    }

    /**
     * 删除物料计划信息
     * 
     * @param id 物料计划主键
     * @return 结果
     */
    @Override
    public int deletePlnMaterialPlanById(Long id)
    {
        return plnMaterialPlanMapper.deletePlnMaterialPlanById(id);
    }
}
